package org.cug.controller;

import io.swagger.v3.oas.annotations.Operation;
import org.cug.pojo.Category;
import org.cug.pojo.Result;
import org.cug.service.CategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Author: gongshihao
 * @Date: 2024-05-15-11:04
 * @Description: this is my code
 */
@RestController
@RequestMapping("/category")
public class CategoryController {

    @Autowired
    private CategoryService categoryService;


    /**
     * @author gongshihao
     * @state 已测验
     * @date 2024年5月15日
     */
    @PostMapping
    @Operation(summary = "新增文章分类", description = "返回无数据的响应")
    public Result add(@RequestBody @Validated(Category.add.class) Category category)
    {
        categoryService.add(category);
        return Result.success();
    }

    /**
     * @author gongshihao
     * @return
     * @state 已测验
     * @date 2024年5月15日
     */
    @GetMapping
    @Operation(summary = "获取文章分裂列表", description = "返回一个文章列表")
    public Result<List<Category>>list()
    {
        List<Category> list=categoryService.lists();
        return Result.success(list);
    }

    /**
     * @author gongshihao
     * @param id
     * @return
     * @state 已测验
     * @date 2024年5月15日
     */
    @GetMapping("/detail")
    @Operation(summary = "查询文章分类详情", description = "返回一个文章分类实例")
    public Result<Category> detail(Integer id)
    {
        Category c=categoryService.findById(id);
        return Result.success(c);
    }

    /**
     * @author gongshihao
     * @param category
     * @return
     * @state 已测验
     * @date 2024年5月15日
     */
    @PutMapping
    @Operation(summary = "更新文章分类", description = "返回无数据响应")
    //分组校验
    public Result update(@RequestBody @Validated(Category.update.class) Category category)
    {
        categoryService.update(category);
        return Result.success();
    }
}
